@charset "UTF-8";

/* ************************************************************************************************

   共通

   ************************************************************************************************ */

html,body {
  width: 100%;
  height: 100%;
  font-size: 62.5%; /*ベースを10pxに設定*/
  letter-spacing: 0.07em;
  font-family: 'Noto Serif JP', serif, 'Yu Mincho Light','YuMincho','Yu Mincho','游明朝体',sans-serif;
  font-weight: normal;
  color: #1c1c1c;
  background: #fff;
}

.en, .btn01{
  font-family: 'Times New Roman','Georgia',sans-serif;
  font-weight: normal;
}

h1 {font-size: 3.5rem;}
h2 {font-size: 3rem;}
h3 {font-size: 2.8rem;}
h4 {font-size: 2.4rem; line-height: 2;}
h5 {font-size: 2rem; line-height: 2;}

p {font-size: 1.4rem; line-height: 2.5;}

a{font-size: 1.4rem; text-decoration: none;}

li, th, td {font-size: 1.4rem;}

.page-en p, .page-en a, .page-en li, .page-en th, .page-en td {font-size: 1.5rem;}


/* マウスドラッグした時の文字色 */
::selection {background: #adbfbf;}


/* スクロールバー */
::-webkit-scrollbar {
	width: 10px;
}

::-webkit-scrollbar-track {
	background: #fff;
	border-left: solid 1px rgba(217,238,238,0.7);
}

::-webkit-scrollbar-thumb {
	background: #adbfbf;
	border-radius: 10px;
	box-shadow: inset 0 0 0 2px #fff;
}


/* 改行 */
.br_pc{display: block;} /*PCだけ改行 */
.br_1024{display: none;} /*幅1024以下で改行 */
.br_960{display: none;} /*幅960以下で改行 */
.br_560{display: none;} /*幅560以下で改行 */


/* ページ全体の余白など */
#page {
  overflow: hidden;
  width: 100%;
}

.container, .container02{
  width: 1180px;
  padding: 0 2rem;
  margin: 0 auto;
}

@media screen and (max-width: 1180px){
  .container, .container02 {width: 100%;}
}


/*flex, clearfix*/
.flex{
  display: -webkit-flex;
  display: -ms-flex;
  display: flex;
  align-items: flex-start;
}

.flex--space-between{
  display: -webkit-flex;
  display: -ms-flex;
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
}

.flex--space-around{
  display: -webkit-flex;
  display: -ms-flex;
  display: flex;
  justify-content: space-around;
  align-items: flex-start;
}

.flex--center{
  display: -webkit-flex;
  display: -ms-flex;
  display: flex;
  justify-content: center;
  align-items: flex-start;
}

.clearfix::after {
   content: "";
   display: block;
   clear: both;
}


/***** 下層ページヘッダー *****/
.header-sub{
  padding: 3rem 3rem 0;
}

.header-sub__ttl{
  margin: 15rem 0;
}

.header-sub__img{
  width: 100%;
  height: auto;
}


/***** フッター *****/
footer{
  padding: 5rem 0 5rem;
  text-align: center;
}

.footer__txt{
  margin: 9rem 0 6rem;
}

.footer__map{
  margin: 10rem 0 15rem;
}

.footer__sns {
  margin-bottom: 3rem;
}

.footer__sns a {
  font-size: 4rem;
  margin: 0 1rem 0;
}

small{
  font-size: 1.4rem;
}


/* ************************************************************************************************

   アニメーション

   ************************************************************************************************ */

/***** ローディングアニメーション *****/
#loading {
  width: 100vw;
  height: 100vh;
  transition: all 1s;
  background-color: #fff;
  position: fixed;
  top: 0;
  left: 0;
  z-index: 9999;
  -webkit-backface-visibility:hidden;
  backface-visibility:hidden;
}

.loading__logo{
  position: absolute;
  margin: auto;
  top: 0;
  bottom: 0;
  right: 0;
  left: 0;
}

.loaded {
  opacity: 0;
  visibility: hidden;
}


/***** ホバーアニメーション *****/
.footer__sns a,
.header__sns a{
  transition: .5s;
}

.footer__sns a:hover,
.header__sns a:hover{
  opacity: 0.6;
  transition: .5s;
}


/***** ボタン *****/
.btn01,
.nav-top a,
.news__translate a {
  position: relative;
  display: inline-block;
  text-decoration: none;
  transition: .3s;
  font-size: 1.6rem;
}
.nav-top a {
  font-size: 1.4rem;
}
.btn01::after,
.nav-top a::after,
.news__translate a::after {
  position: absolute;
  bottom: -7px;
  left: 0;
  content: '';
  width: 100%;
  height: 1px;
  background: #689689;
  transform: scale(0, 1);
  transform-origin: right top;
  transition: transform .3s;
}
.btn01:hover::after,
.nav-top a:hover::after,
.news__translate a:hover::after {
  transform-origin: left top;
  transform: scale(1, 1);
}
.btn01:hover,
.nav-top a:hover,
.news__translate a:hover{
  color: #689689;
  transition: .3s;
}


/***** グローバルメニュー　フルスクリーン *****/
.menu{
    height: 20px;
    position: fixed;
    right: 3rem;
    top: 3rem;
    width: 30px;
    z-index: 99;
    cursor: pointer;
    -webkit-backface-visibility:hidden;
  backface-visibility:hidden;
}
.menu__line{
    background: #1c1c1c;
    display: block;
    height: 2px;
    position: absolute;
    transition:transform .3s;
    width: 100%;
}
.menu__line--center{
    top: 9px;
}
.menu__line--bottom{
    bottom: 0;
}
.menu__line--top.active{
    top: 8px;
    transform: rotate(45deg);
}
.menu__line--center.active{
    transform:scaleX(0);
}
.menu__line--bottom.active{
    bottom: 10px;
    transform: rotate(135deg);
}

.gnav{
    background: #fff;
    display: none;
    height: 100%;
    position: fixed;
    width: 100%;
    z-index: 98;
    right: 0;
    padding: 3rem 0 0;
    -webkit-backface-visibility:hidden;
  backface-visibility:hidden;
}

.gnav__wrap{
  display: -webkit-flex;
  display: -ms-flex;
  display: flex;
  justify-content: space-between;
  margin: 5rem 0;
}

.gnav__menu-list a, .gnav__menu-list--margin a{
  font-size: 2.2rem;
  line-height: 2.2;
}

.gnav__menu-list--sub{
  font-size: 1.4rem;
  margin-left: 2rem;
}

.gnav__menu-list--margin{
  margin-bottom: 5rem;
}

.gnav__contact{
  text-align: right;
}

.gnav__contact--tel{
  margin: 5rem 0 4rem;
}

.gnav__contact--tel a {
  font-size: 1.6rem;
}

.gnav__footer{
  text-align: center;
  position: absolute;
  bottom: 3rem;
  margin: auto;
  left: 0;
  right: 0;
  width: 30%;
}

.gnav__img {
  width: 80%;
  height: auto;
}

.gnav__btn--en .btn01 {
  font-size: 2.2rem;
  margin-top: 4rem;
}

.header__sns {
  margin-bottom: 2rem;
}

.header__sns a {
  font-size: 4rem;
  margin: 0 1rem;
}

.header__sns--mail{
  display: none;
}


/*グローバルメニュー　ホバーエフェクト*/
.gnav__menu-list a,
.gnav__menu-list--margin a,
.gnav__contact--tel a {
  transition: .5s;
}

.gnav__menu-list a:hover,
.gnav__menu-list--margin a:hover,
.gnav__contact--tel a:hover {
  color: #689689;
  transition: .3s;
}

@media screen and (max-width: 1680px){
  /***** ヘッダー @1680px *****/
  .gnav__menu-list a, .gnav__menu-list--margin a {font-size: 2rem;}
  .gnav__menu-list--margin {margin-bottom: 4rem;}
  .gnav__contact--tel {margin: 4rem 0 3rem;}
  .gnav__img {width: 60%;}
  .gnav__btn--en .btn01 {
    font-size: 2rem;
    margin-top: 3rem;
  }
}

@media screen and (max-width: 1399px){
  /***** ヘッダー @1400px *****/
  .gnav__menu-list--margin {margin-bottom: 2rem;}
  .gnav__contact--tel {margin: 3rem 0 2rem;}
}


@media screen and (max-width: 1299px){
  /***** ヘッダー @1300px *****/
  .gnav__menu-list a, .gnav__menu-list--margin a {
    font-size: 1.8rem;
    line-height: 2.2;
  }
  .gnav__img {width: 50%;}
  .gnav__btn--en .btn01 {
    font-size: 1.8rem;
    margin-top: 3rem;
  }
}


/***** ページトップに戻るボタン *****/
#page_top{
  width: 60px;
  height: 60px;
  position: fixed;
  right: 1.5rem;
  bottom: 1.5rem;
  background: #689689;
  opacity: 0.6;
  border-radius: 50%;
  -webkit-backface-visibility:hidden;
  backface-visibility:hidden;
}

#page_top:hover{
  opacity: 1;
}

#page_top a{
  position: relative;
  display: block;
  width: 60px;
  height: 60px;
  text-decoration: none;
}
#page_top a::before{
  font-family: 'Font Awesome 5 Free';
  font-weight: 900;
  content: '\f106';
  font-size: 2.5rem;
  color: #fff;
  position: absolute;
  width: 25px;
  height: 25px;
  top: -5px;
  bottom: 0;
  right: 0;
  left: 0;
  margin: auto;
  text-align: center;
}


/*ふわっと出てくるアニメーション*/
.effect-up {
 opacity : 0;
 transform : translate(0, 50px);
 transition : ease-in-out 1.5s;
}

.effect-up-delay {
 opacity : 0;
 transform : translate(0, 50px);
 transition : ease-in-out 1.5s;
 -moz-transition-delay:.3s;
	-webkit-transition-delay:.3s;
	-o-transition-delay:.3s;
	-ms-transition-delay:.3s;
}

.effect-right {
 opacity : 0;
 transform : translate(-50px, 0);
 transition : ease-in-out 1.5s;
}

.effect-right-delay {
 opacity : 0;
 transform : translate(-50px, 0);
 transition : ease-in-out 1.5s;
 -moz-transition-delay:.3s;
	-webkit-transition-delay:.3s;
	-o-transition-delay:.3s;
	-ms-transition-delay:.3s;
}

.effect-left {
 opacity : 0;
 transform : translate(50px, 0);
 transition : ease-in-out 1.5s;
}

.effect-left-delay {
 opacity : 0;
 transform : translate(50px, 0);
 transition : ease-in-out 1.5s;
 -moz-transition-delay:.3s;
	-webkit-transition-delay:.3s;
	-o-transition-delay:.3s;
	-ms-transition-delay:.3s;
}

.effect-up.effect-scroll,
.effect-right.effect-scroll,
.effect-left.effect-scroll,
.effect-up-delay.effect-scroll,
.effect-right-delay.effect-scroll,
.effect-left-delay.effect-scroll {
 opacity : 1;
 transform : translate(0, 0);
}


/***** Edge,IE調整 *****/

@media all and (-ms-high-contrast: none) {
  footer {padding: 20rem 0 5rem;}
}


/* ************************************************************************************************

   1600px以上 / デスクトップPC

   ************************************************************************************************ */
@media screen and (min-width: 1600px){
  .gnav__wrap {margin: 7rem 0;}
  .header-sub__ttl{margin: 20rem 0;}
}


/* ************************************************************************************************

   1024px / PC

   ************************************************************************************************ */
@media screen and (max-width: 1025px){

/***** 共通 @1024px *****/
h2 {line-height: 2;}

.container, .container02 {
  width: 100%;
  padding: 0 8rem;
}

/* 改行 */
.br_pc{display: none;} /*PCだけ改行 */
.br_1024{display: block;} /*幅1024以下で改行 */

/* ページトップボタン */
#page_top, #page_top a {width: 50px; height: 50px;}


/***** 下層ページヘッダー @1024px *****/
.header-sub__logo img {width: 100px; height: auto;}
.header-sub__ttl {margin: 10rem 0;}


/***** フッター @1024px *****/
.footer__map {
  margin: 10rem 0 10rem;
  padding: 0 8rem 0;
}
.footer__map iframe {width: 100%;}
small {font-size: 1.2rem;}

}


/* ************************************************************************************************

   1366×1024px / iPad Pro

   ************************************************************************************************ */
@media only screen and (min-width: 1024px) and (max-width: 1366px) and (orientation: portrait) {

/***** iPad Pro縦 *****/
footer {padding: 20rem 0 5rem;}

.header__ttl img {width: auto;}
.gnav__wrap{
  display: block;
  margin: 6rem 0 7rem;
}
.gnav__menu-list a, .gnav__menu-list--margin a {font-size: 2.2rem; line-height: 2.2;}
.gnav__menu-list--sub {font-size: 1.4rem; margin-left: 2rem;}
.gnav__menu-list--margin {margin-bottom: 5rem;}
.gnav__contact {margin-top: -19rem;}
.gnav__contact--tel {margin: 5rem 0 4rem;}
.gnav__contact--tel a {font-size: 1.6rem;}
.gnav__footer{
  text-align: center;
  position: absolute;
  bottom: 3rem;
  margin: auto;
  left: 0;
  right: 0;
  width: 30%;
}
.gnav__img {width: 45%; height: auto;}
.gnav__btn--en .btn01 {font-size: 2.2rem; margin-top: 4rem;}
.header__sns {margin-bottom: 2rem;}
.header__sns a {font-size: 4rem;margin: 0 1rem;}

}


/* ************************************************************************************************

   1024×768px / iPad横

   ************************************************************************************************ */
@media only screen and (min-width: 768px) and (max-width: 1024px) and (orientation: landscape) {
  .header__ttl img {width: 10%;}
  footer {padding: 20rem 0 5rem;}
}


/* ************************************************************************************************

   960px / タブレット

   ************************************************************************************************ */
@media screen and (max-width: 959px){

/***** 共通 @960px *****/
h1 {font-size: 3.3rem;}
h2 {font-size: 2.8rem;}
h3 {font-size: 2.6rem;}
h4 {font-size: 2.2rem;}
h5 {font-size: 1.8rem;}

.container {padding: 0 7rem;}
.container02 {padding: 0 3rem;}

/*改行*/
.br_960 {display: block;}


/***** ヘッダー @960px *****/
.header__ttl img {width:15%;}
.gnav__wrap {display: block;}
.gnav__contact {margin-top: -17rem;}
.gnav__img {width: 45%;}


/***** フッター @960px *****/
footer {padding: 15rem 0 5rem;}
.footer__txt {margin: 7rem 0 5rem;}
.footer__map {margin: 7rem 0 10rem;}
.footer__logo {width: 18%;}

}


/* ************************************************************************************************

   560px / スマホ

   ************************************************************************************************ */
@media screen and (max-width: 559px){

/***** 共通 @560px*****/
h1 {font-size: 2.8rem;}
h2 {font-size: 2.4rem;}
h3 {font-size: 2.2rem;}
h4 {font-size: 1.8rem;}
h5 {font-size: 1.4rem;}
p {font-size: 1.3rem;}
a {font-size: 1.3rem;}
li, th, td {font-size: 1.3rem;}

.page-en p, .page-en a, .page-en li, .page-en th, .page-en td {font-size: 1.5rem;}

img {max-width: 100%;}

.container { padding: 0 4rem;}
.container02 { padding: 0 3rem;}

/*ボタン*/
.btn01 {font-size: 1.4rem;}

/*改行*/
.br_560 {display: block;}
.br_560_none {display: none;}

/*ローディングアニメーション*/
.loading__logo {width: 30%;}


/***** ヘッダー @560px*****/
.menu {
  right: 2rem;
  top: 2rem;
}

.header__ttl img {width: 19%;}
.gnav {padding: 2rem 0 0;}
.gnav .container {padding: 0 3rem;}
.gnav__wrap {margin: 2rem 0 0;}
.gnav__menu {
  border-bottom: 1px solid #adbfbf;
  padding-bottom: .5rem;
  margin-bottom: .5rem;
}
.gnav__menu-list a, .gnav__menu-list--margin a {
  font-size: 1.4rem;
  line-height: 2.3;
}
.page-en .gnav__menu-list a, .page-en .gnav__menu-list--margin a {
  font-size: 1.6rem;
  line-height: 2;
}
.gnav__menu-list--margin {margin-bottom: 0;}
.gnav__menu-list--sub {font-size: 1.2rem;}
.gnav__img {display: none;}
.gnav__contact {margin-top: 0;}
.gnav__contact--tel { margin: 1.5rem 0 1.5rem;}
.gnav__contact--tel a {font-size: 1.4rem;}
.gnav__btn--en .btn01 {font-size: 1.6rem; margin-top: 1rem; color: #689689;}
.gnav__footer {
  text-align: left;
  width: 50%;
  margin: 0;
  left: 3rem;
  bottom: 2rem;
}
.header__sns {
  margin-bottom: 1rem;
  display: -webkit-flex;
  display: -ms-flex;
  display: flex;
}
.header__sns a {
  font-size: 3rem;
  margin: 0 .5rem;
}
.header__sns--mail {display: block;}
.gnav__menu-list--mail {display: none;}


/***** 下層ページヘッダー @560px *****/
.header-sub__logo img {width: 70px;}
.header-sub {padding: 2rem 2rem 0;}
.header-sub__ttl {margin: 7rem 0;}


/***** フッター @560px *****/
footer {padding: 11rem 0 5rem;}
.footer__logo {width: 33%;}
.footer__map {
  padding: 0;
  margin: 5rem 0 7rem;
}
.footer__map iframe {
  width: 100%;
  height: 50vh;
}
.footer__sns a {
  font-size: 3.5rem;
}
small {font-size: 1.1rem;}

}


/* ************************************************************************************************

   320px / スマホ

   ************************************************************************************************ */
@media screen and (max-width: 320px){

/***** 共通 @320px*****/
.container { padding: 0 2.5rem;}
.container02 { padding: 0 2rem;}

p {font-size: 1.2rem;}
a {font-size: 1.2rem;}
li, th, td {font-size: 1.2rem;}

.btn01 {font-size: 1.3rem;}

.page-en p, .page-en a, .page-en li, .page-en th, .page-en td {font-size: 1.4rem;}

.footer__sns a, .header__sns a {font-size: 3rem;}

.footer__txt {margin: 5rem 0 4rem;}


/***** ヘッダー @320px *****/
.gnav__wrap {margin: 2rem 0 0rem;}
.gnav__menu-list a, .gnav__menu-list--margin a {line-height: 2;}
.gnav__menu-list--sub {font-size: 1.1rem;}
.gnav__footer {
  width: 60%;
  left: 2.5rem;
}
.gnav__menu {
  padding-bottom: 0.5rem;
  margin-bottom: 0.5rem;
}
.gnav .container {
  padding: 0 2.5rem;
}
.page-en .gnav__menu-list a, .page-en .gnav__menu-list--margin a {font-size: 1.4rem; line-height: 2.1;}

}
